热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

详情|可能会_美多商城项目01了解主要需求和架构设计,创建配置工程

篇首语:本文由编程笔记#小编为大家整理,主要介绍了美多商城项目01了解主要需求和架构设计,创建配置工程相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了美多商城项目01了解主要需求和架构设计,创建配置工程相关的知识,希望对你有一定的参考价值。



一、美多商城项目介绍

1.1 项目需求分析



需求分析原因


  • 项目中,需求驱动开发,即开发人员需要以需求为目标来实现业务逻辑。

需求分析方式


  • 企业中,借助产品原型图分析需求。
  • 需求分析完后,前端按照产品原型图开发前端页面,后端开发对应的业务及响应处理。
  • 提示:我们现在假借示例网站作为原型图来分析需求。

需求分析内容


  • 页面及页面上的业务逻辑
  • 归纳业务逻辑并划分模块


1. 项目主要页面介绍



1.首页广告






2.注册






3.登录







4.QQ登录



 





5.个人信息






6.收货地址






7.我的订单






8.修改密码






9.商品列表






10.商品搜索






11.商品详情






12.购物车






13.结算订单






14.提交订单






15.支付宝支付






16.支付结果处理






17.订单商品评价





2. 归纳项目主要模块


模块功能
验证图形验证、短信验证
用户注册、登录、用户中心(基本信息、邮箱激活、收货地址、我的订单、修改密码)
第三方登录QQ登录
首页广告首页广告
商品商品列表、商品搜索、商品详情、商品浏览记录
购物车购物车管理、购物车合并
订单确认订单、提交订单、订单商品评价
支付支付宝支付
MIS系统数据统计、用户管理、权限管理、商品管理、订单管理

3. 知识要点


  1. 需求分析原因:需求驱动开发。
  2. 需求分析方式:企业中,使用原型图分析需求。
  3. 需求分析内容:了解页面及业务逻辑,归纳业务模块。
  4. 需求分析结果:划分业务模块,明确每个模块下的主要功能。

1.2 项目架构设计


1. 项目开发模式


选项技术选型
开发模式前后端分离
后端框架Django
前端框架Vue.js


说明:


  • 页面需要局部刷新:我们会选择使用Vue.js来实现。


2. 项目架构设计




3. 知识要点

项目主要架构


  • 帮助我们整体把握项目的工作流程和主要的业务场景。
  • 项目开发时,明确工作的重心是实现后端业务逻辑

二、工程创建和配置

2.1 创建工程


1. 准备项目代码仓库



1.源码托管网站



  • 码云(https://gitee.com/)


2.创建源码远程仓库:meiduo_project





2. 克隆项目代码仓库



1.进入本地项目目录


cd Desktop/


2.克隆仓库


git clone https://gitee.com/itcastitheima/meiduo_project.git

3. 创建美多商城工程



1.进入本地项目仓库


cd meiduo_project/


2.创建美多商城虚拟环境,安装Django框架


$ mkvirtualenv -p python3 meiduo_mall
$ pip install django==2.2.5


3.创建美多商城Django工程


$ django-admin startproject meiduo_mall


创建工程完成后:运行程序,测试结果。



2.2 配置开发目录




  • libs 存放第三方的库文件

  • utils 存放项目自己定义的公共函数或类等

  • apps 存放Django的应用

  • templates 模板文件存放文件夹


 2.3 运行前端

前端的用户部分. 使用我们给大家发的 front_end_pc 文件夹充当

即. front_end_pc 文件夹中的内容都是前端的部分.

想要将 front_end_pc 中的内容启动起来, 我们需要使用 python 自带的一个小服务器来进行. 该小服务器的启动方式为:

# 进入 front_end_pc 所在的文件夹
cd front_end_pc
# 启动小服务器. 端口8080
python3 -m http.server 8080

启动以后, 我们就可以使用该小服务器把 front_end_pc 中的前端代码运行起来. 启动后的端口是8080端口.

大家需要打开浏览器, 然后访问:

http://127.0.0.1:8080即可以看到front_end_pc 中的前端内容了.


2.4 配置mysql数据库


1. 新建MySQL数据库



1.新建MySQL数据库:meiduo_mall


$ create database meiduo_mall charset=utf8;


2.新建MySQL用户


$ create user itcast identified by '123456';


3.授权itcast用户访问meiduo_mall数据库


$ grant all on meiduo_mall.* to 'itcast'@'%';


4.授权结束后刷新特权


$ flush privileges;

2. 配置MySQL数据库

文档

DATABASES =
'default':
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'itcast', # 数据库用户名
'PASSWORD': '123456', # 数据库用户密码
'NAME': 'meiduo_mall' # 数据库名字
,

3. 安装mysqlclient扩展包



1.安装驱动程序


$ pip install mysqlclient


配置完成后:运行程序,测试结果。



2.5 配置Redis数据库


1. 安装django-redis扩展包



1.安装django-redis扩展包


$ pip install django-redis


2.django-redis使用说明文档


点击进入文档


2. 配置Redis数据库

CACHES =
"default": # 默认
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/0",
"OPTIONS":
"CLIENT_CLASS": "django_redis.client.DefaultClient",

,
"session": # session
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1",
"OPTIONS":
"CLIENT_CLASS": "django_redis.client.DefaultClient",

,
SESSION_ENGINE = "django.contrib.sessions.backends.cache"
SESSION_CACHE_ALIAS = "session"


default:


  • 默认的Redis配置项,采用0号Redis库。

session:


  • 状态保持的Redis配置项,采用1号Redis库。

SESSION_ENGINE


  • 修改session存储机制使用Redis保存。

SESSION_CACHE_ALIAS:


  • 使用名为"session"的Redis配置项存储session数据

配置完成后:运行程序,测试结果。



 2.6 配置工程日志

文档


1. 配置工程日志

LOGGING =
'version': 1,
'disable_existing_loggers': False, # 是否禁用已经存在的日志器
'formatters': # 日志信息显示的格式
'verbose':
'format': '%(levelname)s %(asctime)s %(module)s %(lineno)d %(message)s'
,
'simple':
'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
,
,
'filters': # 对日志进行过滤
'require_debug_true': # django在debug模式下才输出日志
'()': 'django.utils.log.RequireDebugTrue',
,
,
'handlers': # 日志处理方法
'console': # 向终端中输出日志
'level': 'INFO',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
,
'file': # 向文件中输出日志
'level': 'INFO',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(BASE_DIR, 'logs/meiduo.log'), # 日志文件的位置
'maxBytes': 300 * 1024 * 1024,
'backupCount': 10,
'formatter': 'verbose'
,
,
'loggers': # 日志器
'django': # 定义了一个名为django的日志器
'handlers': ['console', 'file'], # 可以同时向终端与文件中输出日志
'propagate': True, # 是否继续传递日志信息
'level': 'INFO', # 日志器接收的最低日志级别
,


2. 准备日志文件目录



3. 日志记录器的使用

不同的应用程序所定义的日志等级可能会有所差别,分的详细点的会包含以下几个等级:


  • FATAL/CRITICAL = 重大的,危险的
  • ERROR = 错误
  • WARNING = 警告
  • INFO = 信息
  • DEBUG = 调试
  • NOTSET = 没有设置

import logging
# 创建日志记录器
logger = logging.getLogger('django')
# 输出日志
logger.debug('测试logging模块debug')
logger.info('测试logging模块info')
logger.error('测试logging模块error')

4. Git记录工程日志



提示1:


  • 开发过程中,产生的日志信息不需要代码仓库进行管理和记录。





提示2:


  • 建立代码仓库时,生成的忽略文件中已经默认忽略掉了*.log





问题:


  • logs文件目录需求被Git仓库记录和管理。
  • 当把*.log都忽略掉后,logs文件目录为空。
  • 但是,Git是不允许提交一个空的目录到版本库上的。

解决:


  • 在空文件目录中建立一个.gitkeep文件,然后即可提交。

 





配置完成后:运行程序,测试结果。



5. 知识要点


  1. 本项目最低日志等级设置为:INFO
  2. 创建日志记录器的方式:logger = logging.getLogger('django')
  3. 日志记录器的使用:logger.info('测试logging模块info')
  4. 在日志loggers选项中可以指定多个日志记录器

2.7 配置访问域名

设置访问域名


位置域名
前端www.meiduo.site

编辑/etc/hosts文件,可以设置本地域名

sudo vim /etc/hosts

在文件中增加信息

127.0.0.1 www.meiduo.site


1.ubuntu系统或者Mac系统







2.Windows系统


编辑 C:\\Windows\\System32\\drivers\\etc\\hosts

我们在前端js目录中,创建host.js文件用以为前端保存后端域名

var host = 'http://www.meiduo.site:8000';

设置allowed_hosts

#允许哪些主机访问
ALLOWED_HOSTS = ['127.0.0.1','www.meiduo.site']



推荐阅读
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 在Windows系统中安装TensorFlow GPU版的详细指南与常见问题解决
    在Windows系统中安装TensorFlow GPU版是许多深度学习初学者面临的挑战。本文详细介绍了安装过程中的每一个步骤,并针对常见的问题提供了有效的解决方案。通过本文的指导,读者可以顺利地完成安装并避免常见的陷阱。 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 基于 Bottle 框架构建的幽默应用 —— Python 实践 ... [详细]
  • PHP中元素的计量单位是什么? ... [详细]
  • 如何在Django和Vue中配置共享全局变量以实现跨组件数据传递
    在Django和Vue项目中,为了实现跨组件的数据传递,可以通过配置共享全局变量来达到目的。具体做法是在Django项目的主目录下创建一个专门用于存储全局变量的Python文件。例如,可以在该文件中定义一个函数 `templates_global`,该函数返回需要在多个组件间共享的数据。此外,还可以利用Vue的Vuex状态管理库来进一步增强数据的管理和传递效率,确保数据的一致性和可维护性。 ... [详细]
  • Django框架下的对象关系映射(ORM)详解
    在Django框架中,对象关系映射(ORM)技术是解决面向对象编程与关系型数据库之间不兼容问题的关键工具。通过将数据库表结构映射到Python类,ORM使得开发者能够以面向对象的方式操作数据库,从而简化了数据访问和管理的复杂性。这种技术不仅提高了代码的可读性和可维护性,还增强了应用程序的灵活性和扩展性。 ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • 大家好,我是李白。本文将分享一个从零开始的全栈项目,涵盖了设计、前端、后端和服务端的全面学习过程。通过这个项目,我希望能够帮助初学者更好地理解和掌握全栈开发的技术栈。 ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 在尝试对 QQmlPropertyMap 类进行测试驱动开发时,发现其派生类中无法正常调用槽函数或 Q_INVOKABLE 方法。这可能是由于 QQmlPropertyMap 的内部实现机制导致的,需要进一步研究以找到解决方案。 ... [详细]
  • 服务器部署中的安全策略实践与优化
    服务器部署中的安全策略实践与优化 ... [详细]
  • 在Conda环境中高效配置并安装PyTorch和TensorFlow GPU版的方法如下:首先,创建一个新的Conda环境以避免与基础环境发生冲突,例如使用 `conda create -n pytorch_gpu python=3.7` 命令。接着,激活该环境,确保所有依赖项都正确安装。此外,建议在安装过程中指定CUDA版本,以确保与GPU兼容性。通过这些步骤,可以确保PyTorch和TensorFlow GPU版的顺利安装和运行。 ... [详细]
  • 在生产环境中进行高效部署与优化 ... [详细]
author-avatar
我是谁_2502894917
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有